package main

import (
	"fmt"
	"math"
)

/**
内建变量类型：
- bool,string
- (u)int,(u)int8,(u)int16,(u)int32,(u)int64,uintptr
- byte,rune
- float32,float64,complex64,complex128

int类型：
- u代表无符号
- 还照规定长度和没规定长度来分，有规定长度比如int8，没规定长度时是根据系统来（在32位系统就是32位，在64位系统就是64位的）
- uintptr，里面的ptr指的是指针，指针的长度也是根据操作系统来的

rune类型：
- 是go语言的一个字符型，go语言不叫char，叫rune，因为char只有1字节，但是各国语言没办法存各种不同语言的1个字，所以我们用这个rune，这个rune就是go语言里面的char类型
- rune的长度是32位的，有同学说unicode不是两个字节吗，其实是不一定的，在互联网上我们常用utf8的编码，在utf8里面我们很多字符是3点多因此我们采用一个4字节的int32，来代表这个rune

byte和rune对比：
- 不同点：byte是8位的，rune是32位的
- 相同：他们都可以跟整数混用，相当于整数的一个别名

complex64和complex1
- 在大学数学中，complex是复数的意思，例如“根号-1”
- complex分实部和虚部,complex64的实部和虚部分别是32位，complex128实部和虚部分别是64位

complex详解：
- 在数学里面，float能代表x轴上任意一点都对应了一个实数
- 复数，就不仅是在x轴上的一个数，而是在一个二维平面里面的数

i=√-1(根号-1)
复数=3+4i，其中，3是实部，4i是虚部
*/

/**
强制类型转换
- go语言种，类型转换只有强制类型转换，没有隐式类型转换
*/

func triangle() {
	a, b := 3, 4
	var c int
	c = int(math.Sqrt(float64(a*a + b*b)))
	fmt.Println(c)
}

func main() {
	triangle()
}
